//package com.smart.community.feign.property.service;
//
//import java.util.List;
//
//import org.springframework.cloud.openfeign.FeignClient;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.PathVariable;
//
//import com.smart.community.feign.property.dto.PropertyCompanyDataScopeVO;
//import com.smart.community.feign.property.fallback.PropertyCompanyDataScopeFeignFallback;
//
//import io.swagger.v3.oas.annotations.Operation;
//import io.swagger.v3.oas.annotations.Parameter;
//import io.swagger.v3.oas.annotations.tags.Tag;
//
///**
// * 物业公司数据权限Feign接口
// * 
// * 提供物业公司相关的数据权限查询功能：
// * 物业公司 → 社区集合
// * 
// * 注意：楼栋、单元、房户相关的数据权限查询由区域服务提供
// * 
// * @author Wu.Liang
// * @version 1.0.0
// * @since 2025-01-30
// */
//@Tag(name = "物业公司数据权限Feign接口", description = "物业公司数据权限相关Feign接口")
//@FeignClient(
//    name = "smart-community-property",
//    path = "/feign/property-company-data-scope",
//    fallback = PropertyCompanyDataScopeFeignFallback.class,
//    contextId = "iPropertyCompanyDataScopeFeign"
//)
//public interface IPropertyCompanyDataScopeFeign {
//    
//    /**
//     * 检查用户是否有关联的物业公司
//     * 
//     * @param userId 用户ID
//     * @return 是否有关联物业公司
//     */
//    @Operation(summary = "检查用户是否有关联的物业公司")
//    @GetMapping("/check-property-company/{userId}")
//    Boolean checkUserHasPropertyCompany(@Parameter(description = "用户ID") @PathVariable("userId") Long userId);
//    
//    /**
//     * 获取用户关联的物业公司ID
//     * 
//     * @param userId 用户ID
//     * @return 物业公司ID，没有关联则返回null
//     */
//    @Operation(summary = "获取用户关联的物业公司ID")
//    @GetMapping("/property-company-id/{userId}")
//    Long getUserPropertyCompanyId(@Parameter(description = "用户ID") @PathVariable("userId") Long userId);
//    
//    /**
//     * 根据物业公司ID获取关联的社区ID集合
//     * 这是数据权限第1步：物业公司 → 社区集合
//     * 
//     * @param propertyCompanyId 物业公司ID
//     * @return 社区ID集合
//     */
//    @Operation(summary = "根据物业公司ID获取关联的社区ID集合")
//    @GetMapping("/communities-by-property-company/{propertyCompanyId}")
//    List<Long> getCommunityIdsByPropertyCompanyId(@Parameter(description = "物业公司ID") @PathVariable("propertyCompanyId") Long propertyCompanyId);
//    
//    /**
//     * 根据用户ID获取其物业公司关联的社区ID集合
//     * 组合查询：用户 → 物业公司 → 社区集合
//     * 
//     * @param userId 用户ID
//     * @return 社区ID集合
//     */
//    @Operation(summary = "根据用户ID获取其物业公司关联的社区ID集合")
//    @GetMapping("/communities-by-user/{userId}")
//    List<Long> getCommunityIdsByUserId(@Parameter(description = "用户ID") @PathVariable("userId") Long userId);
//    
//
//    
//    /**
//     * 获取用户的完整数据权限范围
//     * 一次性获取用户可访问的所有层级数据ID集合
//     * 
//     * @param userId 用户ID
//     * @return 数据权限范围对象
//     */
//    @Operation(summary = "获取用户的完整数据权限范围")
//    @GetMapping("/complete-data-scope/{userId}")
//    PropertyCompanyDataScopeVO getCompleteDataScope(@Parameter(description = "用户ID") @PathVariable("userId") Long userId);
//} 